/*1:公司有公司名称，注册地址，电话，经营范围等属性，
公司有很多员工（用List存储），员工有姓名，年龄，性别，职务，薪水、工号等属性，
公司有招聘员工（要求工号不能重复），有输出员工信息，以及辞退员工，和统计公司人数的方法
用oo的思想模拟*/
package Work0525;

import java.util.*;

public class Company {
	private String name;// 姓名
	private String address;// 地址
	private long phone;// 电话
	private String range;// 范围
	List<Staff> staff = new ArrayList<Staff>();

	public Company(String name, String address, long phone, String range) {
		this.name = name;
		this.address = address;
		this.phone = phone;
		this.range = range;
	}

	/**
	 * 展示信息
	 */
	public void show() {
		System.out.println(name + "公司,地址" + address + ",电话" + phone + ",经营范围" + range + ",欢迎您的加入.");
	}

	/**
	 * 增加员工
	 * 
	 * @param name
	 * @param old
	 * @param sex
	 * @param post
	 * @param salary
	 * @param jobNo
	 */
	public boolean addStaff(String name, int old, String sex, String post, int salary) {
		if (cheakStaff(name)) {
			staff.add(new Staff(name, old, sex, post, salary, staff.size() + 1));
			return true;
		} else {
			return false;
		}
	}

	/**
	 * 检查是否重名
	 * 
	 * @param name
	 * @return
	 */
	public boolean cheakStaff(String name) {
		for (int a = 0; a < staff.size(); a++) {
			if (staff.get(a).getName().equals(name)) {
				return false;
			}
		}
		return true;
	}

	/**
	 * 展示员工信息
	 */
	public void showStaff() {
		System.out.println("姓名\t年龄\t性别\t职位\t薪水  \t工号");
		for (int a = 0; a < staff.size(); a++) {
			staff.get(a).show();
		}
	}

	/**
	 * 辞退员工
	 * 
	 * @param name
	 * @return
	 */
	public boolean dismissal(String name) {
		for (int a = 0; a < staff.size(); a++) {
			if (staff.get(a).getName().equals(name)) {
				staff.remove(a);
				return true;
			}
		}
		return false;
	}

	/**
	 * 计算总数量
	 * 
	 * @return
	 */
	public int statistics() {
		return staff.size();

	}
}
